1. Field of the Invention
The present invention relates to a non-volatile semiconductor memory whereby data is stored by accumulating or not accumulating charges into a floating gate, and more particularly, to a non-volatile semiconductor storage device whereby prescribed initial data can be read out again, even after a normal writing or erasing operation is executed.
2. Description of the Related Art
An EEPROM including memory cells each having a floating gate is employed as a non-volatile semiconductor storage device to store data or program to be stored for a long time, because storage data or program is not lost even when a power is OFF. The EEPROM is also employed as a flash memory which can erase data in each prescribed block. For example, the flash memory is employed as a memory for program built-in a micro-processor.
To write data or program in a non-volatile semiconductor storage device (hereinafter it called a flash memory, for example, for simplicity) built in a micro processor and so on, there are various methods, for example: first is to write data or program by employing an externally provided writing device, second is to write a boot program once by employing an externally provided writing device and to write (down load) the original data or program by the use of the written boot program after that; and third is to provide a ROM storing the above-described boot program and employ the boot program stored in the ROM so as to write (down load) the original data or program into the flash memory, and so on.
The first method can not be used in real because of the many steps necessary for writing data or program. Additionally, the third method must be avoided, since the additional ROM for storing the boot program to down load data or program must be provided. Therefore, the second method is most effective and lower cost.
However, in order to down load data or program having large capacity by employing a capacity of flash memory to the maximum, the data or program must be over-written in an area storing the prescribed boot program. Since the boot program will never be used after down loading the data or program once, there is no problem to over-write the data or program in the boot program area.
However, it can happen that the written data or program should be changed after over-writing it in the area storing the boot program. Or it also can happen that some operations failures occur during down loading data or program, then, the down loading can not be properly completed. In these cases, since the boot program is already erased, even though it is necessary to down load the data or program again, the boot program for down loading does not exist, thus the data or program can not be written to a micro processor.